package com.pai.entity;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import javax.swing.DefaultListModel;
/**
 * user的集合，用于存储从UDP中读取到的当前网段内用户的信息。数据存在内存里，使用单例模式。
 * @author Jeff
 *
 */
public class UserList{
	public static Map<String,User> userlist = new HashMap<String,User>() ;
	
	public static void addUser(User user){
		if( !hasUser(user.getUsername())){
			userlist.put(user.getUsername(), user);
		}
	}
	/**
	 * 检查是否有user。
	 * @param name 用户名
	 * @return 用户名对应的user
	 */
	public static boolean hasUser(String name){
		return userlist.containsKey(name);
	}

	/**
	 * 清除所有list里所有记录
	 */
	public static void clearUser(){
		userlist = new HashMap<String,User>();
	}
	/**
	 * 根据名字获取user对象
	 * @param name 用户名
	 * @return 用户名对应的user
	 */
	public static User getUser(String name){
		return userlist.get(name);
	}
	
	/**
	 * 更新user对象
	 * @param user
	 */
	public static void updateUser(User user){
		User u = getUser(user.getUsername());
		if(u!=null){
			userlist.remove(user.getUsername());
		}
		addUser(user);
	}

	/**
	 * 通过ip地址获取user对象
	 * @param ip 
	 * @return ip对应的user
	 */
	public static User getUserByIp(String ip){
		for(Map.Entry<String,User> entry:userlist.entrySet()){    
		     if(entry.getValue().getUserIP().equals(ip)){
		    	 return entry.getValue();
		     }
		}   
		
		return null;
		
	}
}
